bigNumber.js使用介绍

您所在的位置:网站首页 js 判断是否是整数数组的方法有哪些 bigNumber.js使用介绍

bigNumber.js使用介绍

2024-07-15 22:19| 来源: 网络整理| 查看: 265

为什么要使用bigNumber.js为了解决精度丢失的问题,前端面试常见的一个问题就是‘0.1+0.2!=0.3’是为什么,0.1+0.2 = 0.30000000000000004,这在对数字精度要求比较高的项目中常常会出现bug,所以要使用bigNumber.js官网的解释:A JavaScript library for arbitrary-precision arithmetic.(用于任意精度算术的JavaScript库。)

精度为什么丢失?0.1+0.2 = 0.30000000000000004

数据存储方式:js遵循国际 IEEE 754 标准,将数字存储为双精度浮点数。这种格式以 64 位存储数字,其中数字(分数)存储在位 0 到 52 中,指数存储在位 53 到 62 中,符号存储在位 63(正数为0负数为1) 中。整数的表示范围就是 -2^53 到 2^53 之间 。十进制整数转二进制方法:除2取余;十进制小数转二进制方法:乘2取整:0.1 * 2 = 0.2 # 00.2 * 2 = 0.4 # 00.4 * 2 = 0.8 # 00.8 * 2 = 1.6 # 10.6 * 2 = 1.2 # 10.2 * 2 = 0.4 # 0从上面可以看出,0.1的二进制格式是:0.0001100011…。这是一个二进制无限循环小数,取前52位,所以一些小数存在计算机中天然就存在舍入误差计算机存储数据用的是二进制存储十进制,一些十进制的小数在存储为二进制的时候回变成无限小数。而js遵循国际IEEE754标准,将数字存储为双精度浮点数,这种格式以64位存储格式,数字存储在0到51位中,指数存储在52到62位中,符号位存储在63位中。所以二进制的无限小数只能存储前52位,(转换为10进制就是前17位)后面的位数被舍入了,在相加的过程中存在舍入误差。0.1+0.1===0.2的原因?存储的过程中也存在舍入误差,只是恰好等于0.2后面16个0安装bigNumber.js1、下载地址:https://github.com/MikeMcl/bignumber.js/releases2、安装命令:

npm install bignumber.js --save

3、引入

import BigNumber from 'bignumber.js' 使用 一、BigNumber构造

BigNumber构造如下

y = new BigNumber(-1000) y=>{ c: [1000] // 数值 e: 3//指数幂 s: -1//正负 } 二、静态方法

备注:以下标题的格式如下: 方法全称 && 方法简称 方法作用

1、absoluteValue && .abs() 取绝对值 x = new BigNumber(-0.8) y = x.abs() //0.8 2、comparedTo && isEqualTo 比较大小

两个都是表示比较大小,功能略有差异

z = y.comparedTo(x) z = y.isEqualTo(x)

comparedTo方法:y>x,返回1;y



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3